[Dies ist ein Fallbeispiel, das in einem separaten Fenster angezeigt wird. So können Sie das Beispiel und ein beliebiges anderes Hilfethema gleichzeitig betrachten. Das Fenster des Fallbeispiels lässt sich verschieben, in seiner Grösse ändern und über das Schliessfeld verlassen]
Die folgenden Befehlsschaltflächen des Formulars 1. Test ausgeben geben die folgenden Varianten des Berichts RptTestlösung auf dem Bildschirm oder Drucker aus:
Lösungen mit Nummern (BtnGesamtlösungsvorschau)
MC- und ZO-Lösungen (BtnMcZoVorschau, Multiple Choice- und Zuordnungsaufgaben)
Essaylösungen (BtnEssayvorschau).
Die Formatierung dieser Berichte stellt ein Problem, das wir an den folgenden Bildschirmausschnitten zeigen. Der erste Ausschnitt betrifft das Eingabeformular Zuordnungstext der Aufgabe ... und der zweite Ausschnitt zeigt den entsprechenden Ausschnitt des Berichts RptTestlösung:

Bild 1: Eingabeformular einer Zuordnungsaufgabe

Bild 2: Berichtsversion der Zuordungsaufgabe von Bild 1 (Die m:n-Verbindung ist blau unterstrichen)
Das Eingabeformular von Bild 1 stellt die Zuordnungslösungen relational - das heisst ohne Wiederholungsgruppen - dar. Zu jedem Zahlenpräfix gehört nur ein einziges Buchstabenpräfix. Eine Wiederholungsgruppe "AC" wie in der Berichtsversion ist nicht erlaubt. Die Aussage "Die Zahlenalternative 1 gehört zu den Buchstabenpräfices A und C" kann nur auf zwei Zeilen, nämlich "1 A" und "1 C", eingegeben werden.
Der Bericht stellt hingegen die m:n- Beziehung zwischen Zahlen- und Buchstabenpräfices direkt dar - zum Beispiel als "1 AC". Der Grund liegt darin, dass die Lösungsvorlage eines schriftlichen Tests - mit Ausnahme der roten Farbe der Buchstabenpräfices - gleich aussehen muss wie das Aufgabenblatt der TestteilnehmerInnen. Nur so können Sie den Test korrigieren, indem Sie die Musterlösung auf Folien ausgeben und über die studentische Lösung legen (vgl. Tests korrigieren).
Damit der Bericht eine m:n-Beziehung zwischen Zahlen- und Buchstabenpräfices darstellen kann, entwickeln wir eine Ereignisprozedur Report_Open, die beim Öffnen des Berichts (bevor der Bericht angezeigt oder gedruckt wird) eine temporäre Tabelle TmpBUCHSTABENPRÄFICES mit den folgenden Feldern erstellt:
Die Tabelle besteht nur so lange, bis der Bericht RptTestlösung neu aufgerufen wird. Der folgende Entwurscode fasst den VBA-Code der Ereignisprozedur Report_Open zusammen. Sie können den VBA-Code inspizieren, wenn Sie im Datenbankfenster (»F11) auf die Schaltfläche Berichte klicken, den Bericht RptLösung in der Entwurfsansicht öffnen und aus der Eigenschaftenliste (»Alt/Enter) zur Ereignisprozedur Report_Open verzweigen.
Ereignisprozedur Report_Open Lösche die letzte Version von TmpBUCHSTABENPRÄFICES Definiere TmpBUCHSTABENPRÄFICES Fragenschlüssel Zahlenpräfix TmpBuchstabenpräfices Erstelle eine Abfrage aus ... den Zuordnungs-Aufgaben des gewählten Testtermins mit den Feldern ... Fragenschlüssel, Fragenschlüssel, Zahlenpräfix, Buchstabenpräfix Bis Ergebnistabelle der Abfrage fertig Konkateniere für jede Gruppe gleicher Zahlenpräfices die Buchstabenpräfices zu KonkatBuchstabenpräfices (Zum Beispiel ergibt A & C das Ergebnis AC für das Zahlenpräfix 1) Füge den Gruppensatz mit ... Fragenschlüssel, Zahlenpräfix, KonkatBuchstabenpräfices an TmpBUCHSTABENPRÄFICES
Die entsprechende VBA-Prozedur Report_Open ist vor allem aus den folgenden Gründen länger und komplexer als der Entwurfscode:
Die prozedurale Tabellenverarbeitung unter dem Objektmodell DAO bringt viel syntakischen und semantischen Ballast mit sich. Insbesondere können Operationen auf extern gespeicherten Tabellen können nicht auf die Tabellen selbst angewendet werden, sondern erfolgen in sogenannten Recordsets, Mengen von Datensätzen, deren Existenz auf die Laufzeit des Programms beschränkt ist.
Der VBA-Code enthält eine geschachtelte Schleife, die der Entwurfscode nur andeutet (... für jede Gruppe ...).